package org.centsuse.intention_spring.invention.entities.model;

public class ScenePrompts {

    // 使用文本块定义模板 (Java 15+)
    private static final String SLOT_UPDATE_TEMPLATE = """
        你是一个信息抽取机器人。
        当前问答场景是：【%s】
        当前日期是：%s

        JSON中每个元素代表一个参数信息：
        '''
        name是参数名称
        desc是参数注释，可以做为参数信息的补充
        '''

        需求：
        #01 根据用户输入内容提取有用的信息到value值，严格提取，没有提及就丢弃该元素
        #02 返回JSON结果，只需要name和value

        返回样例：
        ```
        %s
        ```

        JSON：%s
        输入：%s
        答：
        """;

    private static final String SLOT_QUERY_USER_TEMPLATE = """
        你是一个专业的客服。
        当前问答场景是：【%s】

        JSON中每个元素代表一个参数信息：
        '''
        name表示参数名称
        desc表示参数的描述，你要根据描述引导用户补充参数value值
        '''

        需求：
        #01 一次最多只向用户问两个参数
        #02 回答以"请问"开头

        JSON：%s
        向用户提问：
        """;

    // 格式化方法
    public static String getSlotUpdatePrompt(String sceneName,
                                             String currentDate,
                                             String exampleJson,
                                             String inputJson,
                                             String userInput) {
        return String.format(SLOT_UPDATE_TEMPLATE,
                sceneName,
                currentDate,
                exampleJson,
                inputJson,
                userInput
        );
    }

    public static String getSlotQueryUserPrompt(String sceneName,
                                                String slotJson) {
        return String.format(SLOT_QUERY_USER_TEMPLATE,
                sceneName,
                slotJson
        );
    }
}